package commonClass;

/**
 * 常用类
 */
@SuppressWarnings("all")
public class WrapperType {

    public static void main(String[] args) {

        /*
             针对八种基本数据类型相应的引用类型——包装类
             有了类的特点，就可以调用类中的方法

             基本数据类型     包装类
              boolean       Boolean
              char          Character
              byte          Byte
              short         Short
              int           Integer
              long          Long
              float         Float
              double        Double

              包装类 和 基本数据类型的相互转换，这里以int 和 Integer为例
               1) jdk5前的手动装箱和拆箱方式。装箱：基本类型-》包装类型，反之拆箱
               2) jdk5以后的自动拆装箱方式
               3) 自动装箱底层调用的是 valueOf 方法，比如 Integer.valueOf()
               4) 其他包装类的用法类似，不一样举例
         */
        //jdk5以前是手动装箱和拆箱
        int n1 = 100;

        Integer integer = new Integer(n1);

        Integer integer1 = Integer.valueOf(n1);

        //手动拆箱
        //Integer -> int
        int i = integer.intValue();

        //jdk5后，就可以自动装箱和拆箱
        int n2 = 200;

        //自动装箱 int -> Integer
        Integer integer2 = n2;//底层使用的是 Integer.valueOf(n2)

        //自动拆箱 Integer -> int
        int n3 = integer2;//底层使用的是 intValue()方法
    }
}
